#ifndef SI_NS_H_
#define SI_NS_H_

#include "Button.h"
#include "LED.h"
#include "Relay.h"
#include "SI.h"

typedef void(*pFxnRtnVoidParamBYTE)(unsigned char);
typedef void(*pStateFxn) (enum LED_INDEX, enum LED_INDEX);

struct siStateInfo_t {
	enum SI_STATE me;
	pFxnRtnVoidParamBYTE pSiAlmNotify;
	pStateFxn pStateFxnDuring;
	enum RATES locLedRateIfAlarm;
	enum RATES locLedRateIfSuper;
	enum RATES alarmLedsRate;
	enum RATES supervisoryRate;
	enum Relay_Setting myRelaySetting;
};

typedef struct siStateInfo_t * pSiStateInfo_t;

void SI_NS_SM(unsigned char i, struct evtArr_s * evts, unsigned char eventOneSecondTick);

pSiStateInfo_t SI_test_NS_returnCurrentState(unsigned char si);
void SI_test_NS_packDesiredState(pSiStateInfo_t pDest, enum SI_STATE me);

#endif /* SI_NS_H_ */
